Learn R Programming

party (version 1.3-9)

Panel Generating Functions: Panel-Generators for Visualization of Party Trees

Description

The plot method for BinaryTree and mob objects are rather flexible and can be extended by panel functions. Some pre-defined panel-generating functions of class grapcon_generator for the most important cases are documented here.

Usage

node_inner(ctreeobj, digits = 3, abbreviate = FALSE, 
  fill = "white", pval = TRUE, id = TRUE)
node_terminal(ctreeobj, digits = 3, abbreviate = FALSE, 
  fill = c("lightgray", "white"), id = TRUE)
edge_simple(treeobj, digits = 3, abbreviate = FALSE)
node_surv(ctreeobj, ylines = 2, id = TRUE, …)
node_barplot(ctreeobj, col = "black", fill = NULL, beside = NULL,
  ymax = NULL, ylines = NULL, widths = 1, gap = NULL, 
  reverse = NULL, id = TRUE)
node_boxplot(ctreeobj, col = "black", fill = "lightgray", 
  width = 0.5,  yscale = NULL, ylines = 3, cex = 0.5, id = TRUE)
node_hist(ctreeobj, col = "black", fill = "lightgray", 
  freq = FALSE, horizontal = TRUE, xscale = NULL, ymax = NULL, 
  ylines = 3, id = TRUE, …)
node_density(ctreeobj, col = "black", rug = TRUE, 
  horizontal = TRUE, xscale = NULL, yscale = NULL, ylines = 3, 
  id = TRUE)
node_scatterplot(mobobj, which = NULL, col = "black", 
  linecol = "red", cex = 0.5, pch = NULL, jitter = FALSE, 
  xscale = NULL, yscale = NULL, ylines = 1.5, id = TRUE, 
  labels = FALSE)
node_bivplot(mobobj, which = NULL, id = TRUE, pop = TRUE,
  pointcol = "black", pointcex = 0.5,
  boxcol = "black", boxwidth = 0.5, boxfill = "lightgray",
  fitmean = TRUE, linecol = "red",
  cdplot = FALSE, fivenum = TRUE, breaks = NULL,
  ylines = NULL, xlab = FALSE, ylab = FALSE, margins = rep(1.5, 4), …)

Arguments

ctreeobj

an object of class BinaryTree.

treeobj

an object of class BinaryTree or mob.

mobobj

an object of class mob.

digits

integer, used for formating numbers.

abbreviate

logical indicating whether strings should be abbreviated.

col, pointcol

a color for points and lines.

fill

a color to filling rectangles.

pval

logical. Should p values be plotted?

id

logical. Should node IDs be plotted?

ylines

number of lines for spaces in y-direction.

widths

widths in barplots.

width, boxwidth

width in boxplots.

gap

gap between bars in a barplot (node_barplot).

yscale

limits in y-direction

xscale

limits in x-direction

ymax

upper limit in y-direction

beside

logical indicating if barplots should be side by side or stacked.

reverse

logical indicating whether the order of levels should be reversed for barplots.

horizontal

logical indicating if the plots should be horizontal.

freq

logical; if TRUE, the histogram graphic is a representation of frequencies. If FALSE, probabilities are plotted.

rug

logical indicating if a rug representation should be added.

which

numeric or character vector indicating which of the regressor variables should be plotted (default = all).

linecol

color for fitted model lines.

cex, pointcex

character extension of points in scatter plots.

pch

plotting character of points in scatter plots.

jitter

logical. Should the points be jittered in y-direction?

labels

logical. Should axis labels be plotted?

pop

logical. Should the panel viewports be popped?

boxcol

color for box plot borders.

boxfill

fill color for box plots.

fitmean

logical. Should lines for the predicted means from the model be added?

cdplot

logical. Should CD plots (or spinograms) be used for visualizing the dependence of a categorical on a numeric variable?

fivenum

logical. When using spinograms, should the five point summary of the explanatory variable be used for determining the breaks?

breaks

a (list of) numeric vector(s) of breaks for the spinograms. If set to NULL (the default), the breaks are chosen according to the fivenum argument.

xlab, ylab

character with x- and y-axis labels. Can also be logical: if FALSE axis labels are surpressed, if TRUE they are taken from the underlying data. Can be a vector of labels for xlab.

margins

margins of the viewports.

additional arguments passed to callies.

Details

The plot methods for BinaryTree and mob objects provide an extensible framework for the visualization of binary regression trees. The user is allowed to specify panel functions for plotting terminal and inner nodes as well as the corresponding edges. The panel functions to be used should depend only on the node being visualzied, however, for setting up an appropriate panel function, information from the whole tree is typically required. Hence, party adopts the framework of grapcon_generator (graphical appearance control) from the vcd package (Meyer, Zeileis and Hornik, 2005) and provides several panel-generating functions. For convenience, the panel-generating functions node_inner and edge_simple return panel functions to draw inner nodes and left and right edges. For drawing terminal nodes, the functions returned by the other panel functions can be used. The panel generating function node_terminal is a terse text-based representation of terminal nodes.

Graphical representations of terminal nodes are available and depend on the kind of model and the measurement scale of the variables modelled.

For univariate regressions (typically fitted by ctree), node_surv returns a functions that plots Kaplan-Meier curves in each terminal node; node_barplot, node_boxplot, node_hist and node_density can be used to plot bar plots, box plots, histograms and estimated densities into the terminal nodes.

For multivariate regressions (typically fitted by mob), node_bivplot returns a panel function that creates bivariate plots of the response against all regressors in the model. Depending on the scale of the variables involved, scatter plots, box plots, spinograms (or CD plots) and spine plots are created. For the latter two spine and cd_plot from the vcd package are re-used.

References

David Meyer, Achim Zeileis, and Kurt Hornik (2006). The Strucplot Framework: Visualizing Multi-Way Contingency Tables with vcd. Journal of Statistical Software, 17(3). 10.18637/jss.v017.i03

Examples

Run this code
# NOT RUN {
  set.seed(290875)

  airq <- subset(airquality, !is.na(Ozone))
  airct <- ctree(Ozone ~ ., data = airq)

  ## default: boxplots
  plot(airct)
  
  ## change colors
  plot(airct, tp_args = list(col = "blue", fill = hsv(2/3, 0.5, 1)))
  ## equivalent to
  plot(airct, terminal_panel = node_boxplot(airct, col = "blue", 
                                            fill = hsv(2/3, 0.5, 1)))

  ### very simple; the mean is given in each terminal node
  plot(airct, type = "simple")

  ### density estimates
  plot(airct, terminal_panel = node_density)
    
  ### histograms 
  plot(airct, terminal_panel = node_hist(airct, ymax = 0.06, 
                                         xscale = c(0, 250)))
# }

Run the code above in your browser using DataLab